package testes;

import static org.junit.Assert.*;
import iscte.es.copaPaises.businessLayer.Continente;
import iscte.es.copaPaises.businessLayer.Pais;

import java.util.HashSet;
import java.util.Set;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class ContinenteTest {
	private String nome;
	private Continente c;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		nome="Africa";
		c=new Continente();
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void testContinente() {
		assertTrue("Continente()",Continente.allInstances.contains(c));
	}

	@Test
	public void testContinenteString() {
		c=new Continente(nome);
		assertTrue("Continente(nome)",Continente.allInstances.contains(c));
	}

	@Test
	public void testNome() {
		c.setNome(nome);
		assertEquals("Setter/Getter Continente.nome()",c.nome(),nome);
	}

	@Test
	public void testPaises() {
		Pais p1=new Pais();
		Pais p2=new Pais();
		Pais p3=new Pais();
		Set<Pais> paises=new HashSet<Pais>();
		paises.add(p1);paises.add(p2);
		c.setPaises(paises);
		assertEquals("Setter/Getter Continente.paises()",paises,c.paises());
	}

	@Test
	public void testInicializa() {
		c.inicializa(nome);
		assertEquals("Continente.inicializa()",nome,c.nome());
	}

	@Test
	public void testToString() {
		c.setNome(nome);
		assertEquals("Continente.toString()",c.toString(), "Continente [nome=" + nome + "]\n");
	}

}
